const arr = [1, 1, 2, 4, 9, 5, 9]

// array.indexOf(item) !== array.lastIndexOf(item) 过滤出数组中重复的元素
// array.indexOf(item) === index 去重（indexOf只会返回数组中第一次出现的元素）
function duplicates1 (arr) {
  return arr.filter(
    (item, i, array) =>
      array.indexOf(item) !== array.lastIndexOf(item) &&
      array.indexOf(item) === i
  )
}

function duplicates2 (arr) {
  const result = []
  arr.forEach(function (elem) {
    if (
      arr.indexOf(elem) != arr.lastIndexOf(elem) &&
      result.indexOf(elem) == -1
    ) {
      result.push(elem)
    }
  })
  return result
}

console.log(duplicates1(arr))
